Blog started 2020. Latest post: Feb 2024
Most people never get past their first 100 days of learning to code. High schoolers join coding orgs, but only learn WIX, templates, or drag-and-drop code. It's much better and more fun to really learn how computers work, and how they can be a tool for you in whichever way you choose
This blog that charts my first steps, links I liked, and how I felt. When you feel stuck, I hope it helps you move along more quickly
In 2020, I joined Hack Club, a nonprofit that helps high schoolers start after-school computer clubs. Today, I'm cofounder, which means I work with the founder, and across all aspects of Hack Club. When hired, I was the only non-technical person on the team.
My middle school computer science club had 12 boys and a male teacher. No girls. My high school didn't have a CS club at all
Ok, so now I'm learning to code- something most high schoolers still haven't yet learned.
What are my goals?
Following Hack Club's tutorial, I build a website in repl.it but then I gave up and did other things for a year. Felt like i couldn’t do it. Or worried it would take to long. Forgot about it.
Decide I want to give coding another try
It's so great to have Sam in Singapore bc someone is always awake, but that advice is too far advanced for me. So I guess a cool goal would be to figure out how to get that into my code. Hack Club is great for support when I get stuck, but it's not a place to fully learn how to code. Both those are really valuable though. Also, i want to ship this, but I don’t know if I should ship my repl.it link, my github link or connect it to christina.cool and ship that. I have to get my personal site together…. I wish i had the whole day to code- its so exciting.
May 24th
Loving going thru codeacademy while simultaneously building my site. This morn I created tab links at the top of my site that will allow me to click on them and go somewhere else on the site.
Still struggling w divs but adding them to my site. My main worry atm is how will i remember all this. When will it become second nature. Also, my code is getting so long-- i’m struggling to not feel overwhelmed by it.
Do you ever want to just code all day? It’s kind of addictive!
May 26
Found this list of all tags by Mozilla
I begin downloading Visual Studio Code- and that`s easy and free. Now I want to start building a new website, and I`d like to create that in VS Code. How do link up VS Code and my GitHub account? First step: Go online to my GitHub account and open a public repo in github (if you want to make it private you have to pay) Click add a README and name your website.
Use lowercase in listing your website name...
do you find this confusing and wonder why its so complicated? I do. My co worker Zach Latta helped me through every step of learning this. I would call him and screenshare so he could walk me through, step-by-step, and I would write it down and commit it to memory. Here is a screenshot of him helping me. Look at my chaotic screen and how frustrated I look!
Six months after I started in earnest, I'm coming to the end of my self-described "beginners' stage and I'm testing that I can apply my knowledge and finding some gaps. Overall, my emotional state is excited: I feel encouraged that I'm learning because I know now how to build and publish websites for the world to see, and I see very clearly what I've learned (html basics plus a little styling) and I see the next stages of my learning, which is tables and forms and more styling like how to publish photos. When I look at basic website code, I understand it. once I master this, I'll move onto javascript-- there, I'm excited to start working with databases.
Note: I code only 1-2 hours a week! If you have time to do more, you will move way faster than me. You can get past the beginner stage in a month if you 6-8 hours a week.
Once I get to a comfort level with the above, I'll have reached the next stage of my learning. These will be in service of a couple projects I'm going to work on. Currently, I use html and css constantly to build websites and teach students. Like I said, I'm stuck on JavaScript so I have to move on and learn new stuff and dip back in. I'll figure it out.
So of the 7 goals I set for myself in December, I'm advancing on 3-- GitHub, Use a library, and make something with Javascript, and I added a new one: master Terminal
Several YouTube videos have given me- finally- a solid understanding of what an API is, although I haven't built one yet. This video will do the trick for you. I'll keep you posted when I build my first API
A lot of my learning has gotten blocked by not grasping some basic CS concepts, like servers, cache and networks. My colleague, engineer Zach Fogg, suggested CODE: The Hidden Language of Compter Hardware and Software For me, it's way better than Harvard's CS50 class. It starts with Morse code (dots and dashes, and moves to Braille (blocks of six dots and raised bumps, allowing for 64 different combos).
The book then explains the role of electricity is stimulting the earliest devices that communicate via code, like the Telegraph.
Combining CODE with The Innovators has been a great way to step back from memorizing coding languages to study the history of major advancements that have driven the evolution of the computer and of coding. Not only fascinating, it has practical application: Javascript is based off of mathematical equations created in the early 1800s in England by George Boole. Javascript has frustrated me because it's all AND and OR commands ( If/Else) that seemed so frustratingly random to me. But it's not random.
Since computers can only be activated and directed by electrical pulses that are either on or off, there's seemingly limitations. Based off the same binary concept as morse code and braille, computers understand on/ off as 1 or 0, which can also be be reduced to true or false in coding. Javascript is just a language to get your computer to do stuff, and you only get 1 and 0 to communicate. Boole advanced how many circumstances we can accommodate and actions we can make the computer take despite being limited to only binary commands like true/false (if/else).
In fact, Boolean's logic structure, and Javascript + human creativity allow for a lot to happen. Programmers communicate a vast number of complicated ideas despite being limited to binary code. The human mind is amazing!
George Boole worked at the same time as Margaret Fuller, my personal inspiration, and the 1830s and 40s was a very interesting time period in history, as early conceptualizations of programming was being applied by Joseph Marie Jacquard with his loom, and Charles Babbage and Ada Lovelace were working on the Analytical Engine, Charles Morse was sending telegraphs, and Margaret was advocating for social justice-- publishing the first pieces calling for women to go to school, vote and work; plus calling to end slavery and war, specifically the annexation of what is now Texas. These are not just "technical" advances-- they are advances of the mind, and they all work together to improve the human condition. Imagine if these innovators had been able to talk to eachother like today. Instead, their ideas languished in isolation for decades-- Boolean logic wouldn't be applied to coding for another century.)
Margaret Fuller + Twitter + contraception + idk the laundry machines = progress for women.
Looking ahead to July, I'm considering Flatiron School's basic software engineering course free Javascript starter course here to supplement and give structure to all the work I'm doing on my own.
I'm moving beyong learning to code to learning how to build things with code
Example and Update: Flatiron is $7k and also I can't do 20 hours of coursework a week... working on a real project like The Charlotte Bridge website w the Hack Club community is relevant to me is so much more motivating. Plus the Charlotte Bridge has 1k subscribers, so I can have impact, which is so motivating.
I'm trying out the flow of: React/Nextjs/Vercel with the goal of improving the Charlotte Bridge website. Tutorials are like 50 hours, so before I invest that time, I'm going to run a project on it and see if I even like it. I like this way of learning. For example, I got familiar with APIs, but I haven't built anything yet bc I can't think of anything to build that I want, and I'm not motivated to spend more than an initial 2 hours learning something unless I need to use it right now.
Along the way of building something I actually want and is relevant to me, I pick up other stuff that help, like these 10 tips on using Terminal which I came across bc I needed to use the mkdir command in Nextjs and I didn't know what that was. (It makes a new folder!)
Haven't had a lot of time to write lines of code, but continue to hang out with lots of coders and so when the other day a Hack Clubber accidentally shared the org's API token on GitHub, (like Solar Winds) I was able to follow the conversation.
Also, cryptocurrency and blockchain have surfaced at Hack Club, so I did a deep dive to understand them, and even mined a coin.
But I'm ready to hop back in it, and I'm wondering if I should:
Examining my goals, I determined that while I would like to build projects myself, I think more I want to be able to understand what other engineers are doing …so it means I should continue to only to understand enough of the initial concepts to be a good COO
So far i have learned basics of websites, and styling, and what javascript does and essentially the fundamentals of how code works.
As much as I would like to learn javascript, it might be more productive to get a flavor of linux and servers. That's where I'll head next.
Quote that inspires me:At critical moments in time, you can raise the aspirations of other people significantly, especially when they are relatively young, simply by suggesting they do something better or more ambitious than what they might have in mind. It costs you relatively little to do this, but the benefit to them, and to the broader world, may be enormous. This is in fact one of the most valuable things you can do with your time and with your life-- Paul Graham